"""
    结论：
        fit_transform:在训练集，先学习规律(fit) 在应用这个规律(transform)
        transform:在测试集上，应用已经学习到了规律，不在重复学习
"""
from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 1、设置训练数据和测试数据
# 1-1训练数据
train = np.array([[1.0], [2.0], [3.0]])
# 1-2测试数据
test = np.array([[4.0], [5.0]])

# 归一化
tf = MinMaxScaler()
train_MiMx_Scaler = tf.fit_transform(train)
print(f"基于模型训练数据训练出来的：{train_MiMx_Scaler}")

# 正常：
test_MiMx_Scaler = tf.transform(test)
print(f"基于模型训练数据调用归一化：{test_MiMx_Scaler}")

# 异常
test_MiMx_Scaler2 = MinMaxScaler().fit_transform(test)
print(test_MiMx_Scaler2)

# 结论1： 在测试集使用fit_transform  重新计算一版归一化数据 ，得到完全不同的结果
# 导致数据泄露。  模型"偷看"测试集的数据信息。 完全不符合真实情况
# 结论2： 训练集_fit_fit_transform   测试集：transform
